package com.killer;

/**
 * @author ：Killer
 * @date ：Created in 21-4-27 上午10:04
 * @description：${description}
 * @modified By：
 * @version: version
 */
public class DigitDemo {


    public static void main(String[] args) {
        int[] arr=new int[]{1,2,3,4,5,6};
        System.out.println(checkDistinct(arr));
    }

    /**
     * 校验数组中的数字是否都只出现过一次
     * @param arr
     */
    public static String checkDistinct(int[] arr){
        //数组长度为0或者大于10,则返回no
        if (arr == null || arr.length == 0||arr.length>10) {
            return "NO";
        }
        //如果数组长度为1,则肯定是只出现过一次
        if (arr.length == 1) {
            return "YES";
        }
        //由于数字是0-9,因此创建一个boolean数组,大小为10用来作为记录,true代表出现过,false代表未出现过
        boolean[] bits = new boolean[10];
        //遍历数组
        for(int i=0;i<arr.length;i++) {
            //检验数字是否填写正确
            if (arr[i] < 0 || arr[i] > 9) {
                throw new RuntimeException("数字必须是0-9的整数");
            }
            //找到对应下标的值
            boolean bit=bits[arr[i]];
            if (bit == true) {
                //如果已经出现过了,则直接返回no
                return "NO";
            }else {
                //没出现过则将其记录下来,以后这个数字就是出现过了
                bits[arr[i]]=true;
            }
        }
        //都通过的话就是证明数字都是只出现过一次
        return "YES";
    }
}
